<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // console.log(a)
        // var a = "张三"
        // console.log(a)
        // {
        //     var a = "张三"
        // }
        // console.log(a)


        // if(true) {
        //     var a = '张三'
        // }
        // console.log(window)

        // console.log(a)


        // for(var a = 1; a<10; a++) {

        // }

        // console.log(a)
        // let 和 const 是 es6新增的声明变量的方法 
        // 使用let和const声明变量的代码块会转化为一个暂时性的死区 
        // 在死区内无法进行变量提升 且变量在外部无法获取
        // let 除了无法进行变量提升外和var声明的变量的用法没有区别
        // const声明一个常量 const声明的变量必须给默认值 但是变量的值一旦给定 无法修改
        {
            // console.log(a)
            // let a = '张三'
            // console.log(a)
            // a = '李四'
            // const a = 'zhangsan'
            
            // a = "李四"
            // console.log(a)

            // const a = {
            //     name: '张三'
            // }

            // a.name = '李四'
            // console.log(a)
            // a = {}
            // console.log(a)
        }
        // console.log(window)
        // console.log(a)
    </script>
</body>
</html>